package com.clementheliou.cheliou.business.functional.mark;

import com.clementheliou.cheliou.util.math.average.AverageMark;

/**
 * Functional service about the marks. All the methods implementations should
 * contain a functional behavior; that is to say more than an access to the
 * model layer. This kind of service may depend on the data access ones and can
 * be used both by web layer and others functional services.
 * 
 * @author Clément HELIOU (clement.heliou@gmail.com)
 * @since 1.0
 */
public interface MarkFunctionalService {

	/**
	 * Gets the average mark of the given photo.
	 * 
	 * @author Clément HELIOU (clement.heliou@gmail.com)
	 * @param photoId the photo's id.
	 * @return the related average mark or <tt>null</tt> if the given photo has
	 *         not yet been marked.
	 * @since 1.0
	 */
	AverageMark getAverageMarkOfPhoto(final Integer photoId);

}
